package com.xmhmyh.generalframework.project.systool.conversion;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xmhmyh.generalframework.project.systool.entity.Table;
import com.xmhmyh.generalframework.project.systool.vo.TableVO;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @Author: 于丁
 * table - > tableVO
 * @DateTime: 2020/8/6 9:46 上午
 */
public class Tabel2TableVOConversion {

    public static TableVO conversion(Table table) {
        TableVO tableVO = TableVO.builder().tableId(table.getTableId())
                .tableComment(table.getTableComment())
                .tableName(table.getTableName())
                .businessName(table.getBusinessName())
                .className(table.getClassName())
                .createBy(table.getCreateBy())
                .createTime(table.getCreateTime())
                .functionAuthor(table.getFunctionAuthor())
                .functionName(table.getFunctionName())
                .moduleName(table.getModuleName())
                .options(table.getOptions())
                .packageName(table.getPackageName())
                .updateTime(table.getUpdateTime()).build();
        return tableVO;
    }

    public static List<TableVO> conversion(List<Table> tableList) {
        return tableList.stream().map(table -> {
            return conversion(table);
        }).collect(Collectors.toList());
    }


    public static IPage<TableVO> conversion(IPage<Table> tableIPage) {
        IPage<TableVO> page = new Page<>();
        page.setTotal(tableIPage.getTotal());
        page.setSize(tableIPage.getSize());
        page.setCurrent(tableIPage.getCurrent());
        page.setPages(tableIPage.getPages());
        page.setRecords(conversion(tableIPage.getRecords()));
        return page;
    }
}
